package com.ruoyi.app.service

import com.ruoyi.app.common.Data
import com.ruoyi.app.common.PageData
import com.ruoyi.app.domain.dto.CompleteMemberTaskDto
import com.ruoyi.app.domain.vo.*
import com.ruoyi.common.core.page.PageDomain

interface UserApiService {

    /**
     * 获取app用户信息
     */
    fun appUserInfo(): Data<AppUserDetail?>

    /**
     * 获取社友乐园数据
     */
    fun clubJobData(): Data<List<AppClobJobVo>>

    /**
     * 注销账户
     */
    fun logout(): Data<Boolean>

    /**
     * 退出账户
     */
    fun exit(): Data<String>

    /**
     * 获取app 版本信息
     */
    fun getAppVersionInfo(): Data<AppVersionInfoVo>

    /**
     * 获取联系方式列表
     */
    fun getContactWayList(): Data<List<ContactWayVo>>

    /**
     * 获取开通会员类型列表
     */
    fun getMemberTypeList(): Data<List<MemberVo>>

    /**
     * 获取体验会员的任务类型
     */
    fun getExperienceTaskType(memberId: Long): Data<ExperienceDetail>

    /**
     * 领取体验会员
     */
    fun receiveMember(memberId: Long): Data<Boolean>

    /**
     * 完成会员体验任务
     */
    fun completeMemberTask(completeMemberTaskDto: CompleteMemberTaskDto): Data<Boolean>

    /**
     * 获取图片分享
     */
    fun getTaskCodeShare(taskId: Long): Data<AppTaskCodeShareVo>

    /**
     * 获取链接分享
     */
    fun getTaskShare(taskId: Long): Data<AppTaskShareVo>

    /**
     * 获取文案图分享信息
     */
    fun getImageTextShare(): Data<ImageTextShareVo>

    /**
     * 获取链接分享信息
     */
    fun getUrlShare(): Data<UrlShareVo>

    /**
     * 增加曝光点击次数
     */
    fun addClubJobDataCount(type: Int, clubJobId: Long): Data<Boolean>

    /**
     * 获取用户支付记录
     */
    fun getPayRecordList(pageDomain: PageDomain): PageData<AppPayRecordVo>
}